Tracking the Growth of COVID-19 Cases in US

The purpose of this notebook is to infer the rate at which confirmed cases of COVID-19 are growing (or were growing) in various countries.

The notebook pulls data from the Johns Hopkins Data Repository of global Coronavirus COVID-19 cases, and then does the following things:

  • List cumulative number of confirmed cases (in countries with at least 100 confirmed cases)
  • Attempt to fit the time series of cumulative confirmed cases to both an exponential and a logistic function
  • Use these curve fits to infer doubling times (i.e., time for the number of cumulative confirmed cases to double)

We then repeat these steps for US states.

The notebook is updated approximately daily.

For a great primer on exponential and logistic growth, watch this video.

Important Caveats:

  • The growth rate (and the doubling time) changes with time. As the exponential curve eventually turns into a logistic curve, the growth rate will shrink to zero (& the doubling time will consequently increase). So it's not a good idea to extrapolate trends far into the future based on current growth rates or doubling times.

  • The confirmed cases reported by each country are not the number of infections in each country, only those that have tested positive.

  • The doubling time calculated here measures the growth of cumulative confirmed cases, which is different from the growth of infections. For example, if a country suddenly ramps up testing, then the number of confirmed cases will rapidly rise, but infections may not be rising as the same rate.

  • The doubling times inferred from the curve fits are not necessarily the current or most recent doubling times:

    • For countries where the growth is still exponential, the inferred doubling time gives us a picture of the overall rate of growth.
    • For countries where the growth is no longer exponential, and the number of cases is stabilizing (such as China and South Korea), we use a logistic function to fit the data instead. Here, the inferred doubling time represents the growth encountered during the middle of the growth of the epidemic.
    • Finally, we compare these values to the recent doubling time, calculated from the most recent week of data.
In [1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from termcolor import colored, cprint

import plotly.graph_objects as go
#import plotly.offline as offline
#offline.init_notebook_mode(connected=True)

Curve Fitting Global COVID-19 Cases

In [2]:
def logistic(t, a, b, c, d):
    return c + (d - c)/(1 + a * np.exp(- b * t))

def exponential(t, a, b, c):
    return a * np.exp(b * t) + c

def plotCases(dataframe, column, country, maxfev=100000):
#def plotCases(dataframe, column, country, maxfev=1):
    
    co = dataframe[dataframe[column] == country].iloc[:,4:].T.sum(axis = 1)
    co = pd.DataFrame(co)
    co.columns = ['Cases']
    co = co.loc[co['Cases'] > 0]
    
    y = np.array(co['Cases'])
    x = np.arange(y.size)
    
    recentdbltime = float('NaN')
    
    if len(y) >= 7:
        
        current = y[-1]
        lastweek = y[-8]
        
        if current > lastweek:
            print('\n** Based on Most Recent Week of Data **\n')
            print('\tConfirmed cases on',co.index[-1],'\t',current)
            print('\tConfirmed cases on',co.index[-8],'\t',lastweek)
            ratio = current/lastweek
            print('\tRatio:',round(ratio,2))
            print('\tWeekly increase:',round( 100 * (ratio - 1), 1),'%')
            dailypercentchange = round( 100 * (pow(ratio, 1/7) - 1), 1)
            print('\tDaily increase:', dailypercentchange, '% per day')
            recentdbltime = round( 7 * np.log(2) / np.log(ratio), 1)
            print('\tDoubling Time (represents recent growth):',recentdbltime,'days')

    #plt.figure(figsize=(10,5))
    #plt.plot(x, y, 'ko', label="Original Data")
    fig = go.Figure()
    fig.add_trace(go.Scatter(x=x, y=y, mode='markers', name='Original Data'))
    
    logisticworked = False
    exponentialworked = False
    
    try:
        lpopt, lpcov = curve_fit(logistic, x, y, maxfev=maxfev)
        lerror = np.sqrt(np.diag(lpcov))

        # for logistic curve at half maximum, slope = growth rate/2. so doubling time = ln(2) / (growth rate/2)
        ldoubletime = np.log(2)/(lpopt[1]/2)
        # standard error
        ldoubletimeerror = 1.96 * ldoubletime * np.abs(lerror[1]/lpopt[1])

        # calculate R^2
        residuals = y - logistic(x, *lpopt)
        ss_res = np.sum(residuals**2)
        ss_tot = np.sum((y - np.mean(y))**2)
        logisticr2 = 1 - (ss_res / ss_tot)  

        if logisticr2 > 0.95:
            #plt.plot(x, logistic(x, *lpopt), 'b--', label="Logistic Curve Fit")
            fig.add_trace(go.Scatter(x=x, y=logistic(x, *lpopt), mode='lines', line=dict(dash='dot'), name="Logistic Curve Fit") )
            print('\n** Based on Logistic Fit**\n')
            print('\tR^2:', logisticr2)
            print('\tDoubling Time (during middle of growth): ', round(ldoubletime,2), '(±', round(ldoubletimeerror,2),') days')
            print("\tparam: ", lpopt)
            logisticworked = True
        else:
            print("\n logistic R^2 ", logisticr2)    
    except Exception as ex:
        cprint('\nException in logstic process ', 'red')
        cprint(type(ex), 'red')
        cprint(ex, 'red')
    
    try:
        epopt, epcov = curve_fit(exponential, x, y, bounds=([0,0,-100],[100,0.9,100]), maxfev=maxfev)
        eerror = np.sqrt(np.diag(epcov))

        # for exponential curve, slope = growth rate. so doubling time = ln(2) / growth rate
        edoubletime = np.log(2)/epopt[1]
        # standard error
        edoubletimeerror = 1.96 * edoubletime * np.abs(eerror[1]/epopt[1])

        # calculate R^2
        residuals = y - exponential(x, *epopt)
        ss_res = np.sum(residuals**2)
        ss_tot = np.sum((y - np.mean(y))**2)
        expr2 = 1 - (ss_res / ss_tot)

        if expr2 > 0.95:
            #plt.plot(x, exponential(x, *epopt), 'r--', label="Exponential Curve Fit")
            fig.add_trace(go.Scatter(x=x, y=exponential(x, *epopt), mode='lines', line=dict(dash='dot'), name="Exponential Curve Fit"))
            print('\n** Based on Exponential Fit **\n')
            print('\tR^2:', expr2)
            print('\tDoubling Time (represents overall growth): ', round(edoubletime,2), '(±', round(edoubletimeerror,2),') days')
            print("\tparam: ", epopt)
            exponentialworked = True
        else:
            print("\n exponential R^2 ", expr2)    
    except Exception as ex:
        cprint('\nException in exponential process ', 'red')
        cprint(type(ex), 'red')
        cprint(ex, 'red')
    
    #plt.title(country + ' Cumulative COVID-19 Cases. (Updated on '+mostrecentdate+')', fontsize="x-large")
    #plt.xlabel('Days', fontsize="x-large")
    #plt.ylabel('Total Cases', fontsize="x-large")
    #plt.legend(fontsize="x-large")
    #plt.show()
    
    fig.update_layout(title=country + ' Cumulative COVID-19 Cases. (Updated on '+mostrecentdate+')'
                      ,  xaxis_title='Days'
                      , yaxis_title='Total Cases'
                      , width=900, height=700,  autosize=False
                      #,paper_bgcolor='black'
                     )
    fig.show()
    
    if logisticworked and exponentialworked:
        if round(logisticr2,2) > round(expr2,2):
            return [ldoubletime, ldoubletimeerror, recentdbltime]
        else:
            return [edoubletime, edoubletimeerror, recentdbltime]
            
    if logisticworked:
        return [ldoubletime, ldoubletimeerror, recentdbltime]
    
    if exponentialworked:
        return [edoubletime, edoubletimeerror, recentdbltime]
    
    else:
        return [float('NaN'), float('NaN'), recentdbltime]

US COVID-19 Analysis

In [3]:
datadir = 'https://github.com/CSSEGISandData/COVID-19/raw/master/csse_covid_19_data/csse_covid_19_time_series/'
df = pd.read_csv( datadir + 'time_series_covid19_confirmed_US.csv')
#df = pd.read_csv( datadir + 'time_series_covid19_deaths_US.csv')
In [4]:
uscases = df

# For some reason they change column names, change them back.
uscases.rename(columns={
    'Country_Region':'Country/Region',
    'Province_State':'Province/State',
    'Long_':'Long'
}, inplace=True)


# US states lookup from https://code.activestate.com/recipes/577305-python-dictionary-of-us-states-and-territories/
# with DC added
states = { 'AK': 'Alaska', 'AL': 'Alabama', 'AR': 'Arkansas', 'AS': 'American Samoa', 'AZ': 'Arizona', 'CA': 'California', 'CO': 'Colorado', 'CT': 'Connecticut', 'DC': 'District of Columbia', 'DE': 'Delaware', 'FL': 'Florida', 'GA': 'Georgia', 'GU': 'Guam', 'HI': 'Hawaii', 'IA': 'Iowa', 'ID': 'Idaho', 'IL': 'Illinois', 'IN': 'Indiana', 'KS': 'Kansas', 'KY': 'Kentucky', 'LA': 'Louisiana', 'MA': 'Massachusetts', 'MD': 'Maryland', 'ME': 'Maine', 'MI': 'Michigan', 'MN': 'Minnesota', 'MO': 'Missouri', 'MP': 'Northern Mariana Islands', 'MS': 'Mississippi', 'MT': 'Montana', 'NA': 'National', 'NC': 'North Carolina', 'ND': 'North Dakota', 'NE': 'Nebraska', 'NH': 'New Hampshire', 'NJ': 'New Jersey', 'NM': 'New Mexico', 'NV': 'Nevada', 'NY': 'New York', 'OH': 'Ohio', 'OK': 'Oklahoma', 'OR': 'Oregon', 'PA': 'Pennsylvania', 'PR': 'Puerto Rico', 'RI': 'Rhode Island', 'SC': 'South Carolina', 'SD': 'South Dakota', 'TN': 'Tennessee', 'TX': 'Texas', 'UT': 'Utah', 'VA': 'Virginia', 'VI': 'Virgin Islands', 'VT': 'Vermont', 'WA': 'Washington', 'WI': 'Wisconsin', 'WV': 'West Virginia', 'WY': 'Wyoming', 'D.C.': 'District of Columbia'}

# global
# Province/State,Country/Region,Lat,Long,1/22/20

# US
# UID,iso2,iso3,code3,FIPS,Admin2,Province_State,Country_Region,Lat,Long_,Combined_Key,1/22/2020

# Province/State  Country/Region      Lat     Long  1/22/20
uscases = uscases.drop(columns=['UID', 'iso2', 'iso3', 'code3', 'FIPS', 'Admin2', 'Combined_Key'])

usstatesummary = uscases.iloc[:,[0,-1]].groupby('Province/State').sum()

mostrecentdate = usstatesummary.columns[0]
usstatesummary = usstatesummary.sort_values(by = mostrecentdate, ascending = False)
usstatesummary = usstatesummary[usstatesummary[mostrecentdate] > 0]

print('\nNumber of confirmed US COVID-19 cases by state as of', mostrecentdate)
usstatesummary
Number of confirmed US COVID-19 cases by state as of 4/5/20
Out[4]:
4/5/20
Province/State
New York 123160
New Jersey 37505
Michigan 15718
California 15034
Louisiana 13010
Massachusetts 12500
Florida 12350
Pennsylvania 11589
Illinois 11259
Washington 7825
Texas 7209
Georgia 6647
Connecticut 5675
Colorado 4950
Indiana 4411
Ohio 4043
Tennessee 3633
Maryland 3617
North Carolina 2649
Virginia 2640
Arizona 2486
Missouri 2347
Wisconsin 2320
South Carolina 2049
Nevada 1855
Alabama 1765
Mississippi 1638
Utah 1603
Oklahoma 1254
Idaho 1078
Oregon 1068
District of Columbia 1002
Kentucky 955
Minnesota 935
Rhode Island 922
Iowa 869
Arkansas 837
Kansas 751
Delaware 673
New Mexico 670
New Hampshire 621
Vermont 512
Puerto Rico 475
Maine 470
Hawaii 371
Nebraska 364
West Virginia 324
Montana 286
South Dakota 240
North Dakota 207
Wyoming 197
Alaska 185
Guam 112
Grand Princess 103
Diamond Princess 49
Virgin Islands 42
Northern Mariana Islands 6

Curve Fitting US COVID-19 Cases

In [5]:
topusstates = usstatesummary[usstatesummary[mostrecentdate] >= 100]
print(topusstates)

print('\n');
inferreddoublingtime = []
recentdoublingtime = []
errors = []
states = []

for state in topusstates.index.values:
    print('US state: ', state)
    a = plotCases(uscases,'Province/State', state)
    if a:
        states.append(state)
        inferreddoublingtime.append(a[0])
        errors.append(a[1])
        recentdoublingtime.append(a[2])
    print('\n')
                      4/5/20
Province/State              
New York              123160
New Jersey             37505
Michigan               15718
California             15034
Louisiana              13010
Massachusetts          12500
Florida                12350
Pennsylvania           11589
Illinois               11259
Washington              7825
Texas                   7209
Georgia                 6647
Connecticut             5675
Colorado                4950
Indiana                 4411
Ohio                    4043
Tennessee               3633
Maryland                3617
North Carolina          2649
Virginia                2640
Arizona                 2486
Missouri                2347
Wisconsin               2320
South Carolina          2049
Nevada                  1855
Alabama                 1765
Mississippi             1638
Utah                    1603
Oklahoma                1254
Idaho                   1078
Oregon                  1068
District of Columbia    1002
Kentucky                 955
Minnesota                935
Rhode Island             922
Iowa                     869
Arkansas                 837
Kansas                   751
Delaware                 673
New Mexico               670
New Hampshire            621
Vermont                  512
Puerto Rico              475
Maine                    470
Hawaii                   371
Nebraska                 364
West Virginia            324
Montana                  286
South Dakota             240
North Dakota             207
Wyoming                  197
Alaska                   185
Guam                     112
Grand Princess           103


US state:  New York

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 123160
	Confirmed cases on 3/29/20 	 59648
	Ratio: 2.06
	Weekly increase: 106.5 %
	Daily increase: 10.9 % per day
	Doubling Time (represents recent growth): 6.7 days

** Based on Logistic Fit**

	R^2: 0.9981624435070111
	Doubling Time (during middle of growth):  6.2 (± 0.52 ) days
	param:  [ 7.44355993e+02  2.23542680e-01 -1.68329900e+03  1.66114784e+05]

 exponential R^2  0.8861012568434029

US state:  New Jersey

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 37505
	Confirmed cases on 3/29/20 	 13386
	Ratio: 2.8
	Weekly increase: 180.2 %
	Daily increase: 15.9 % per day
	Doubling Time (represents recent growth): 4.7 days

** Based on Logistic Fit**

	R^2: 0.9989494490237577
	Doubling Time (during middle of growth):  5.21 (± 0.35 ) days
	param:  [ 1.95194779e+03  2.66231499e-01 -2.68692268e+02  5.63836425e+04]

** Based on Exponential Fit **

	R^2: 0.9797926502644783
	Doubling Time (represents overall growth):  3.55 (± 0.42 ) days
	param:  [100.           0.19502536 100.        ]

US state:  Michigan

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 15718
	Confirmed cases on 3/29/20 	 5488
	Ratio: 2.86
	Weekly increase: 186.4 %
	Daily increase: 16.2 % per day
	Doubling Time (represents recent growth): 4.6 days

** Based on Logistic Fit**

	R^2: 0.9993451048998995
	Doubling Time (during middle of growth):  5.7 (± 0.39 ) days
	param:  [ 3.04235171e+02  2.43372425e-01 -2.25292769e+02  2.68964812e+04]

** Based on Exponential Fit **

	R^2: 0.9718101418748882
	Doubling Time (represents overall growth):  3.34 (± 0.54 ) days
	param:  [100.           0.20749208 100.        ]

US state:  California

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 15034
	Confirmed cases on 3/29/20 	 5852
	Ratio: 2.57
	Weekly increase: 156.9 %
	Daily increase: 14.4 % per day
	Doubling Time (represents recent growth): 5.1 days

** Based on Logistic Fit**

	R^2: 0.9992496880106478
	Doubling Time (during middle of growth):  6.87 (± 0.25 ) days
	param:  [ 1.15544283e+06  2.01831185e-01 -4.32716522e+00  2.71511396e+04]

** Based on Exponential Fit **

	R^2: 0.9951402384524421
	Doubling Time (represents overall growth):  4.91 (± 0.17 ) days
	param:  [   0.80793467    0.14106986 -100.        ]

US state:  Louisiana

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 13010
	Confirmed cases on 3/29/20 	 3540
	Ratio: 3.68
	Weekly increase: 267.5 %
	Daily increase: 20.4 % per day
	Doubling Time (represents recent growth): 3.7 days

** Based on Logistic Fit**

	R^2: 0.9921858308539993
	Doubling Time (during middle of growth):  5.65 (± 1.39 ) days
	param:  [6.13326937e+02 2.45465324e-01 3.77368897e+01 3.16902588e+04]

** Based on Exponential Fit **

	R^2: 0.9875021836028891
	Doubling Time (represents overall growth):  3.49 (± 0.38 ) days
	param:  [100.           0.19875837  32.87880003]

US state:  Massachusetts

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 12500
	Confirmed cases on 3/29/20 	 4955
	Ratio: 2.52
	Weekly increase: 152.3 %
	Daily increase: 14.1 % per day
	Doubling Time (represents recent growth): 5.2 days

** Based on Logistic Fit**

	R^2: 0.9985282391757024
	Doubling Time (during middle of growth):  4.93 (± 0.25 ) days
	param:  [ 2.46304556e+07  2.81462878e-01 -6.61439776e+00  1.71399495e+04]

** Based on Exponential Fit **

	R^2: 0.9873973734410303
	Doubling Time (represents overall growth):  4.3 (± 0.25 ) days
	param:  [   0.45789066    0.1611991  -100.        ]

US state:  Florida

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 12350
	Confirmed cases on 3/29/20 	 4246
	Ratio: 2.91
	Weekly increase: 190.9 %
	Daily increase: 16.5 % per day
	Doubling Time (represents recent growth): 4.5 days

** Based on Logistic Fit**

	R^2: 0.9982404567187348
	Doubling Time (during middle of growth):  5.34 (± 0.43 ) days
	param:  [ 3.71281285e+03  2.59659285e-01 -2.47188968e+01  1.93662375e+04]

** Based on Exponential Fit **

	R^2: 0.9894925930337491
	Doubling Time (represents overall growth):  4.24 (± 0.35 ) days
	param:  [  52.26231103    0.1635776  -100.        ]

US state:  Pennsylvania

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 11589
	Confirmed cases on 3/29/20 	 3432
	Ratio: 3.38
	Weekly increase: 237.7 %
	Daily increase: 19.0 % per day
	Doubling Time (represents recent growth): 4.0 days

** Based on Logistic Fit**

	R^2: 0.9990883253857348
	Doubling Time (during middle of growth):  5.68 (± 0.4 ) days
	param:  [ 1.78898748e+03  2.43938366e-01 -6.59407227e+01  2.56309604e+04]

** Based on Exponential Fit **

	R^2: 0.9957515950711698
	Doubling Time (represents overall growth):  3.77 (± 0.21 ) days
	param:  [  49.37343565    0.18396288 -100.        ]

US state:  Illinois

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 11259
	Confirmed cases on 3/29/20 	 4596
	Ratio: 2.45
	Weekly increase: 145.0 %
	Daily increase: 13.7 % per day
	Doubling Time (represents recent growth): 5.4 days

Exception in logstic process 
<class 'RuntimeError'>
Optimal parameters not found: Number of calls to function has reached maxfev = 100000.

** Based on Exponential Fit **

	R^2: 0.992850225687426
	Doubling Time (represents overall growth):  4.49 (± 0.18 ) days
	param:  [  0.18004893   0.15439926 -87.89558271]

US state:  Washington

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 7825
	Confirmed cases on 3/29/20 	 4465
	Ratio: 1.75
	Weekly increase: 75.3 %
	Daily increase: 8.3 % per day
	Doubling Time (represents recent growth): 8.6 days

** Based on Logistic Fit**

	R^2: 0.9988960368608953
	Doubling Time (during middle of growth):  8.64 (± 0.36 ) days
	param:  [ 8.19695143e+04  1.60507007e-01 -2.28792653e+01  1.21903813e+04]

** Based on Exponential Fit **

	R^2: 0.9918903944639326
	Doubling Time (represents overall growth):  6.78 (± 0.3 ) days
	param:  [   4.39639749    0.10228092 -100.        ]

US state:  Texas

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 7209
	Confirmed cases on 3/29/20 	 2792
	Ratio: 2.58
	Weekly increase: 158.2 %
	Daily increase: 14.5 % per day
	Doubling Time (represents recent growth): 5.1 days

** Based on Logistic Fit**

	R^2: 0.9993201963432062
	Doubling Time (during middle of growth):  6.25 (± 0.36 ) days
	param:  [ 7.36667679e+02  2.21817606e-01 -5.63961054e+01  1.27102049e+04]

** Based on Exponential Fit **

	R^2: 0.9933381882868647
	Doubling Time (represents overall growth):  4.57 (± 0.33 ) days
	param:  [  70.44094817    0.1516953  -100.        ]

US state:  Georgia

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 6647
	Confirmed cases on 3/29/20 	 2651
	Ratio: 2.51
	Weekly increase: 150.7 %
	Daily increase: 14.0 % per day
	Doubling Time (represents recent growth): 5.3 days

** Based on Logistic Fit**

	R^2: 0.9967956118325306
	Doubling Time (during middle of growth):  5.33 (± 0.58 ) days
	param:  [2.03164979e+03 2.59956310e-01 1.63040965e+00 9.34626165e+03]

** Based on Exponential Fit **

	R^2: 0.9845107517991258
	Doubling Time (represents overall growth):  4.75 (± 0.51 ) days
	param:  [  60.4826418     0.14598701 -100.        ]

US state:  Connecticut

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 5675
	Confirmed cases on 3/29/20 	 1993
	Ratio: 2.85
	Weekly increase: 184.7 %
	Daily increase: 16.1 % per day
	Doubling Time (represents recent growth): 4.6 days

** Based on Logistic Fit**

	R^2: 0.9977180219335382
	Doubling Time (during middle of growth):  4.88 (± 0.53 ) days
	param:  [ 6.43633303e+02  2.83903982e-01 -2.04660719e+01  8.03256758e+03]

** Based on Exponential Fit **

	R^2: 0.9853595407823939
	Doubling Time (represents overall growth):  4.27 (± 0.54 ) days
	param:  [  93.25895748    0.1622737  -100.        ]

US state:  Colorado

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 4950
	Confirmed cases on 3/29/20 	 2307
	Ratio: 2.15
	Weekly increase: 114.6 %
	Daily increase: 11.5 % per day
	Doubling Time (represents recent growth): 6.4 days

** Based on Logistic Fit**

	R^2: 0.9947779415832897
	Doubling Time (during middle of growth):  7.2 (± 1.3 ) days
	param:  [ 2.60565625e+02  1.92623628e-01 -6.81137839e+01  8.59423375e+03]

** Based on Exponential Fit **

	R^2: 0.9894057692843068
	Doubling Time (represents overall growth):  5.19 (± 0.52 ) days
	param:  [  93.24575718    0.13365009 -100.        ]

US state:  Indiana

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 4411
	Confirmed cases on 3/29/20 	 1513
	Ratio: 2.92
	Weekly increase: 191.5 %
	Daily increase: 16.5 % per day
	Doubling Time (represents recent growth): 4.5 days

** Based on Logistic Fit**

	R^2: 0.9991307032150403
	Doubling Time (during middle of growth):  4.9 (± 0.3 ) days
	param:  [ 2.28137903e+03  2.82636700e-01 -2.24173543e+01  6.44602986e+03]

** Based on Exponential Fit **

	R^2: 0.9903364097590032
	Doubling Time (represents overall growth):  4.15 (± 0.36 ) days
	param:  [  32.00774157    0.16710522 -100.        ]

US state:  Ohio

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 4043
	Confirmed cases on 3/29/20 	 1653
	Ratio: 2.45
	Weekly increase: 144.6 %
	Daily increase: 13.6 % per day
	Doubling Time (represents recent growth): 5.4 days

** Based on Logistic Fit**

	R^2: 0.9993959509173114
	Doubling Time (during middle of growth):  5.94 (± 0.37 ) days
	param:  [ 2.38676611e+02  2.33342913e-01 -5.49680537e+01  6.30692044e+03]

** Based on Exponential Fit **

	R^2: 0.9902082607455737
	Doubling Time (represents overall growth):  4.74 (± 0.51 ) days
	param:  [  99.68611136    0.14616934 -100.        ]

US state:  Tennessee

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 3633
	Confirmed cases on 3/29/20 	 1720
	Ratio: 2.11
	Weekly increase: 111.2 %
	Daily increase: 11.3 % per day
	Doubling Time (represents recent growth): 6.5 days

** Based on Logistic Fit**

	R^2: 0.9961438892302973
	Doubling Time (during middle of growth):  5.4 (± 0.65 ) days
	param:  [ 6.73908970e+02  2.56556666e-01 -3.01773589e+01  4.41870298e+03]

** Based on Exponential Fit **

	R^2: 0.976041248546968
	Doubling Time (represents overall growth):  5.45 (± 0.83 ) days
	param:  [  79.49960646    0.12729827 -100.        ]

US state:  Maryland

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 3617
	Confirmed cases on 3/29/20 	 1239
	Ratio: 2.92
	Weekly increase: 191.9 %
	Daily increase: 16.5 % per day
	Doubling Time (represents recent growth): 4.5 days

** Based on Logistic Fit**

	R^2: 0.9992467077388332
	Doubling Time (during middle of growth):  5.9 (± 0.37 ) days
	param:  [ 1.14938838e+03  2.34933003e-01 -1.62374750e+01  7.17519238e+03]

** Based on Exponential Fit **

	R^2: 0.9962232755149765
	Doubling Time (represents overall growth):  4.27 (± 0.23 ) days
	param:  [ 29.51892674   0.16216269 -92.23274615]

US state:  North Carolina

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 2649
	Confirmed cases on 3/29/20 	 1191
	Ratio: 2.22
	Weekly increase: 122.4 %
	Daily increase: 12.1 % per day
	Doubling Time (represents recent growth): 6.1 days

** Based on Logistic Fit**

	R^2: 0.9986138730861773
	Doubling Time (during middle of growth):  6.58 (± 0.52 ) days
	param:  [ 6.30061813e+02  2.10736492e-01 -2.97171981e+01  4.28047741e+03]

** Based on Exponential Fit **

	R^2: 0.992457862051759
	Doubling Time (represents overall growth):  5.36 (± 0.42 ) days
	param:  [  41.20184481    0.1293785  -100.        ]

US state:  Virginia

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 2640
	Confirmed cases on 3/29/20 	 890
	Ratio: 2.97
	Weekly increase: 196.6 %
	Daily increase: 16.8 % per day
	Doubling Time (represents recent growth): 4.5 days

** Based on Logistic Fit**

	R^2: 0.9993910092183702
	Doubling Time (during middle of growth):  6.42 (± 0.42 ) days
	param:  [ 5.84388131e+02  2.15840512e-01 -1.08730583e+01  6.38471750e+03]

** Based on Exponential Fit **

	R^2: 0.9976172600663088
	Doubling Time (represents overall growth):  4.38 (± 0.2 ) days
	param:  [ 33.58862451   0.15820916 -68.00278077]

US state:  Arizona

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 2486
	Confirmed cases on 3/29/20 	 919
	Ratio: 2.71
	Weekly increase: 170.5 %
	Daily increase: 15.3 % per day
	Doubling Time (represents recent growth): 4.9 days

Exception in logstic process 
<class 'RuntimeError'>
Optimal parameters not found: Number of calls to function has reached maxfev = 100000.

** Based on Exponential Fit **

	R^2: 0.9901527218678113
	Doubling Time (represents overall growth):  4.38 (± 0.21 ) days
	param:  [  0.04094952   0.1582912  -20.79018269]

US state:  Missouri

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 2347
	Confirmed cases on 3/29/20 	 915
	Ratio: 2.57
	Weekly increase: 156.5 %
	Daily increase: 14.4 % per day
	Doubling Time (represents recent growth): 5.2 days

** Based on Logistic Fit**

	R^2: 0.9959265205477907
	Doubling Time (during middle of growth):  4.76 (± 0.63 ) days
	param:  [ 9.87626020e+02  2.91016998e-01 -2.05779273e+01  3.04904593e+03]

** Based on Exponential Fit **

	R^2: 0.9812432169010896
	Doubling Time (represents overall growth):  4.76 (± 0.66 ) days
	param:  [  45.88778526    0.14568481 -100.        ]

US state:  Wisconsin

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 2320
	Confirmed cases on 3/29/20 	 1164
	Ratio: 1.99
	Weekly increase: 99.3 %
	Daily increase: 10.4 % per day
	Doubling Time (represents recent growth): 7.0 days

** Based on Logistic Fit**

	R^2: 0.9971026078219283
	Doubling Time (during middle of growth):  7.57 (± 1.22 ) days
	param:  [ 6.54313367e+01  1.83142558e-01 -8.80926494e+01  3.58099024e+03]

** Based on Exponential Fit **

	R^2: 0.9830044424185663
	Doubling Time (represents overall growth):  5.54 (± 0.85 ) days
	param:  [100.           0.12515283 -81.13729396]

US state:  South Carolina

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 2049
	Confirmed cases on 3/29/20 	 774
	Ratio: 2.65
	Weekly increase: 164.7 %
	Daily increase: 14.9 % per day
	Doubling Time (represents recent growth): 5.0 days

** Based on Logistic Fit**

	R^2: 0.9983150958631204
	Doubling Time (during middle of growth):  6.26 (± 0.61 ) days
	param:  [ 4.54722559e+02  2.21471533e-01 -1.32944045e+01  3.64426858e+03]

** Based on Exponential Fit **

	R^2: 0.9939367268005047
	Doubling Time (represents overall growth):  5.08 (± 0.39 ) days
	param:  [ 43.63824823   0.13650832 -94.79876338]

US state:  Nevada

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 1855
	Confirmed cases on 3/29/20 	 920
	Ratio: 2.02
	Weekly increase: 101.6 %
	Daily increase: 10.5 % per day
	Doubling Time (represents recent growth): 6.9 days

** Based on Logistic Fit**

	R^2: 0.9972208995112652
	Doubling Time (during middle of growth):  5.15 (± 0.53 ) days
	param:  [1.20547494e+03 2.69210412e-01 2.08355147e+00 2.36569002e+03]

** Based on Exponential Fit **

	R^2: 0.9851130960633395
	Doubling Time (represents overall growth):  5.47 (± 0.64 ) days
	param:  [  41.39919436    0.12680308 -100.        ]

US state:  Alabama

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 1765
	Confirmed cases on 3/29/20 	 825
	Ratio: 2.14
	Weekly increase: 113.9 %
	Daily increase: 11.5 % per day
	Doubling Time (represents recent growth): 6.4 days

** Based on Logistic Fit**

	R^2: 0.9946182161829058
	Doubling Time (during middle of growth):  7.3 (± 1.91 ) days
	param:  [ 5.95821379e+01  1.89788901e-01 -7.52320692e+01  3.13677622e+03]

** Based on Exponential Fit **

	R^2: 0.9877468269484994
	Doubling Time (represents overall growth):  5.34 (± 0.78 ) days
	param:  [100.           0.12987178 -99.99999997]

US state:  Mississippi

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 1638
	Confirmed cases on 3/29/20 	 759
	Ratio: 2.16
	Weekly increase: 115.8 %
	Daily increase: 11.6 % per day
	Doubling Time (represents recent growth): 6.3 days

** Based on Logistic Fit**

	R^2: 0.9976178203618968
	Doubling Time (during middle of growth):  7.55 (± 1.26 ) days
	param:  [ 5.54121193e+01  1.83651085e-01 -8.41316728e+01  2.74127100e+03]

** Based on Exponential Fit **

	R^2: 0.9893655809315992
	Doubling Time (represents overall growth):  5.73 (± 0.79 ) days
	param:  [ 100.            0.12093227 -100.        ]

US state:  Utah

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 1603
	Confirmed cases on 3/29/20 	 720
	Ratio: 2.23
	Weekly increase: 122.6 %
	Daily increase: 12.1 % per day
	Doubling Time (represents recent growth): 6.1 days

** Based on Logistic Fit**

	R^2: 0.9951799709136556
	Doubling Time (during middle of growth):  7.68 (± 1.48 ) days
	param:  [ 2.05130332e+02  1.80516614e-01 -4.09385208e+01  3.33072388e+03]

** Based on Exponential Fit **

	R^2: 0.9930214863028942
	Doubling Time (represents overall growth):  5.64 (± 0.49 ) days
	param:  [ 49.05468138   0.12284481 -97.9870356 ]

US state:  Oklahoma

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 1254
	Confirmed cases on 3/29/20 	 429
	Ratio: 2.92
	Weekly increase: 192.3 %
	Daily increase: 16.6 % per day
	Doubling Time (represents recent growth): 4.5 days

** Based on Logistic Fit**

	R^2: 0.9971464564067812
	Doubling Time (during middle of growth):  5.65 (± 0.69 ) days
	param:  [ 9.56121102e+02  2.45511350e-01 -8.34041155e+00  2.26043374e+03]

** Based on Exponential Fit **

	R^2: 0.9926080839462246
	Doubling Time (represents overall growth):  4.4 (± 0.35 ) days
	param:  [ 14.30629608   0.15752219 -43.81670827]

US state:  Idaho

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 1078
	Confirmed cases on 3/29/20 	 281
	Ratio: 3.84
	Weekly increase: 283.6 %
	Daily increase: 21.2 % per day
	Doubling Time (represents recent growth): 3.6 days

** Based on Logistic Fit**

	R^2: 0.9960235938755206
	Doubling Time (during middle of growth):  4.07 (± 0.62 ) days
	param:  [9.97568774e+02 3.40719129e-01 9.18347440e+00 1.54343151e+03]

** Based on Exponential Fit **

	R^2: 0.9865788883135647
	Doubling Time (represents overall growth):  4.02 (± 0.52 ) days
	param:  [ 23.35718305   0.17230037 -48.94589159]

US state:  Oregon

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 1068
	Confirmed cases on 3/29/20 	 548
	Ratio: 1.95
	Weekly increase: 94.9 %
	Daily increase: 10.0 % per day
	Doubling Time (represents recent growth): 7.3 days

** Based on Logistic Fit**

	R^2: 0.9974196814280529
	Doubling Time (during middle of growth):  6.17 (± 0.57 ) days
	param:  [1.04387700e+03 2.24794140e-01 1.66317791e+00 1.34357977e+03]

** Based on Exponential Fit **

	R^2: 0.9868489208914716
	Doubling Time (represents overall growth):  6.31 (± 0.64 ) days
	param:  [ 22.35618218   0.10980988 -53.17160283]

US state:  District of Columbia

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 1002
	Confirmed cases on 3/29/20 	 342
	Ratio: 2.93
	Weekly increase: 193.0 %
	Daily increase: 16.6 % per day
	Doubling Time (represents recent growth): 4.5 days

** Based on Logistic Fit**

	R^2: 0.9985749200081654
	Doubling Time (during middle of growth):  9.99 (± 3.06 ) days
	param:  [ 2.19616450e+02  1.38699441e-01 -6.46100247e+01  1.79784097e+04]

** Based on Exponential Fit **

	R^2: 0.9985655698287006
	Doubling Time (represents overall growth):  5.26 (± 0.33 ) days
	param:  [ 89.03941928   0.13173627 -73.26348144]

US state:  Kentucky

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 955
	Confirmed cases on 3/29/20 	 438
	Ratio: 2.18
	Weekly increase: 118.0 %
	Daily increase: 11.8 % per day
	Doubling Time (represents recent growth): 6.2 days

** Based on Logistic Fit**

	R^2: 0.9968556464916722
	Doubling Time (during middle of growth):  5.55 (± 0.64 ) days
	param:  [ 6.00039605e+02  2.49653648e-01 -2.14911122e+00  1.27348793e+03]

** Based on Exponential Fit **

	R^2: 0.9864684114955298
	Doubling Time (represents overall growth):  5.73 (± 0.68 ) days
	param:  [ 29.1245707    0.12086731 -61.72977745]

US state:  Minnesota

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 935
	Confirmed cases on 3/29/20 	 503
	Ratio: 1.86
	Weekly increase: 85.9 %
	Daily increase: 9.3 % per day
	Doubling Time (represents recent growth): 7.8 days

** Based on Logistic Fit**

	R^2: 0.9989661814633067
	Doubling Time (during middle of growth):  7.2 (± 0.54 ) days
	param:  [ 1.22378324e+02  1.92670001e-01 -2.04215165e+01  1.27060818e+03]

** Based on Exponential Fit **

	R^2: 0.9911947304112319
	Doubling Time (represents overall growth):  7.47 (± 0.84 ) days
	param:  [ 6.74167411e+01  9.27324797e-02 -1.00000000e+02]

US state:  Rhode Island

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 922
	Confirmed cases on 3/29/20 	 294
	Ratio: 3.14
	Weekly increase: 213.6 %
	Daily increase: 17.7 % per day
	Doubling Time (represents recent growth): 4.2 days

** Based on Logistic Fit**

	R^2: 0.997890328074727
	Doubling Time (during middle of growth):  5.51 (± 0.49 ) days
	param:  [4.11588653e+03 2.51644207e-01 3.99799392e+00 1.47101008e+03]

** Based on Exponential Fit **

	R^2: 0.9923262258009294
	Doubling Time (represents overall growth):  4.48 (± 0.31 ) days
	param:  [  4.40521948   0.15454798 -17.21183726]

US state:  Iowa

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 869
	Confirmed cases on 3/29/20 	 336
	Ratio: 2.59
	Weekly increase: 158.6 %
	Daily increase: 14.5 % per day
	Doubling Time (represents recent growth): 5.1 days

** Based on Logistic Fit**

	R^2: 0.9989907921595974
	Doubling Time (during middle of growth):  5.71 (± 0.43 ) days
	param:  [3.62651462e+02 2.42742386e-01 3.58166883e+00 1.30194466e+03]

** Based on Exponential Fit **

	R^2: 0.9928558734231709
	Doubling Time (represents overall growth):  5.2 (± 0.47 ) days
	param:  [ 26.14854662   0.13323562 -42.36155295]

US state:  Arkansas

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 837
	Confirmed cases on 3/29/20 	 426
	Ratio: 1.96
	Weekly increase: 96.5 %
	Daily increase: 10.1 % per day
	Doubling Time (represents recent growth): 7.2 days

** Based on Logistic Fit**

	R^2: 0.993513624732539
	Doubling Time (during middle of growth):  10.24 (± 4.36 ) days
	param:  [ 1.61367064e+01  1.35441447e-01 -1.19895013e+02  1.47663287e+03]

** Based on Exponential Fit **

	R^2: 0.9798730584294341
	Doubling Time (represents overall growth):  7.0 (± 1.61 ) days
	param:  [ 1.00000000e+02  9.89585524e-02 -8.92573829e+01]

US state:  Kansas

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 751
	Confirmed cases on 3/29/20 	 330
	Ratio: 2.28
	Weekly increase: 127.6 %
	Daily increase: 12.5 % per day
	Doubling Time (represents recent growth): 5.9 days

** Based on Logistic Fit**

	R^2: 0.9993446572122627
	Doubling Time (during middle of growth):  5.54 (± 0.32 ) days
	param:  [ 4.58038045e+02  2.50245995e-01 -3.30697979e+00  1.06197974e+03]

** Based on Exponential Fit **

	R^2: 0.9911335607746864
	Doubling Time (represents overall growth):  5.38 (± 0.54 ) days
	param:  [ 23.13565223   0.12873373 -47.35522333]

US state:  Delaware

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 673
	Confirmed cases on 3/29/20 	 232
	Ratio: 2.9
	Weekly increase: 190.1 %
	Daily increase: 16.4 % per day
	Doubling Time (represents recent growth): 4.6 days

** Based on Logistic Fit**

	R^2: 0.995326999466195
	Doubling Time (during middle of growth):  9.49 (± 3.0 ) days
	param:  [ 1.30874385e+08  1.46009202e-01 -2.43699148e+01  2.34160573e+09]

** Based on Exponential Fit **

	R^2: 0.9953269998632358
	Doubling Time (represents overall growth):  4.75 (± 0.36 ) days
	param:  [ 17.89201697   0.14600918 -24.36992367]

US state:  New Mexico

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 670
	Confirmed cases on 3/29/20 	 237
	Ratio: 2.83
	Weekly increase: 182.7 %
	Daily increase: 16.0 % per day
	Doubling Time (represents recent growth): 4.7 days

** Based on Logistic Fit**

	R^2: 0.9923760707000819
	Doubling Time (during middle of growth):  8.59 (± 3.11 ) days
	param:  [ 8.71982625e+02  1.61423737e-01 -9.55383535e+00  1.10048817e+04]

** Based on Exponential Fit **

	R^2: 0.9923579941394703
	Doubling Time (represents overall growth):  4.48 (± 0.42 ) days
	param:  [ 14.08622828   0.15481383 -12.0409607 ]

US state:  New Hampshire

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 621
	Confirmed cases on 3/29/20 	 214
	Ratio: 2.9
	Weekly increase: 190.2 %
	Daily increase: 16.4 % per day
	Doubling Time (represents recent growth): 4.6 days

** Based on Logistic Fit**

	R^2: 0.9849430155463407
	Doubling Time (during middle of growth):  8.7 (± 2.86 ) days
	param:  [ 8.98577013e+02  1.59409792e-01 -7.79624645e+00  3.07047438e+03]

** Based on Exponential Fit **

	R^2: 0.9846599834337663
	Doubling Time (represents overall growth):  4.95 (± 0.51 ) days
	param:  [  5.3903075    0.14012182 -12.69143805]

US state:  Vermont

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 512
	Confirmed cases on 3/29/20 	 235
	Ratio: 2.18
	Weekly increase: 117.9 %
	Daily increase: 11.8 % per day
	Doubling Time (represents recent growth): 6.2 days

** Based on Logistic Fit**

	R^2: 0.9935272176982438
	Doubling Time (during middle of growth):  7.77 (± 1.79 ) days
	param:  [ 1.22735651e+02  1.78318217e-01 -1.71696927e+01  9.18362296e+02]

** Based on Exponential Fit **

	R^2: 0.9907477848099875
	Doubling Time (represents overall growth):  6.28 (± 0.7 ) days
	param:  [ 25.55218665   0.11028762 -44.41848428]

US state:  Puerto Rico

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 475
	Confirmed cases on 3/29/20 	 127
	Ratio: 3.74
	Weekly increase: 274.0 %
	Daily increase: 20.7 % per day
	Doubling Time (represents recent growth): 3.7 days

** Based on Logistic Fit**

	R^2: 0.9892452047984454
	Doubling Time (during middle of growth):  4.77 (± 1.5 ) days
	param:  [ 1.91531236e+02  2.90623716e-01 -1.45386028e-01  7.47737561e+02]

** Based on Exponential Fit **

	R^2: 0.9843789564030409
	Doubling Time (represents overall growth):  4.36 (± 0.74 ) days
	param:  [ 22.04233168   0.15898522 -30.95230139]

US state:  Maine

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 470
	Confirmed cases on 3/29/20 	 253
	Ratio: 1.86
	Weekly increase: 85.8 %
	Daily increase: 9.3 % per day
	Doubling Time (represents recent growth): 7.8 days

** Based on Logistic Fit**

	R^2: 0.9951138798463035
	Doubling Time (during middle of growth):  9.47 (± 2.97 ) days
	param:  [ 3.40054942e+01  1.46369730e-01 -3.35003468e+01  1.00941131e+03]

** Based on Exponential Fit **

	R^2: 0.9937540626276202
	Doubling Time (represents overall growth):  8.22 (± 1.11 ) days
	param:  [ 7.75209755e+01  8.43173669e-02 -8.99600243e+01]

US state:  Hawaii

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 371
	Confirmed cases on 3/29/20 	 149
	Ratio: 2.49
	Weekly increase: 149.0 %
	Daily increase: 13.9 % per day
	Doubling Time (represents recent growth): 5.3 days

** Based on Logistic Fit**

	R^2: 0.9950203598172366
	Doubling Time (during middle of growth):  8.58 (± 1.89 ) days
	param:  [ 2.03499069e+02  1.61616746e-01 -9.63899007e+00  1.11090455e+03]

** Based on Exponential Fit **

	R^2: 0.9940508827293583
	Doubling Time (represents overall growth):  5.62 (± 0.45 ) days
	param:  [ 11.40015708   0.12341133 -19.69837336]

US state:  Nebraska

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 364
	Confirmed cases on 3/29/20 	 108
	Ratio: 3.37
	Weekly increase: 237.0 %
	Daily increase: 19.0 % per day
	Doubling Time (represents recent growth): 4.0 days

** Based on Logistic Fit**

	R^2: 0.9959835436649147
	Doubling Time (during middle of growth):  8.33 (± 1.63 ) days
	param:  [1.27054547e+03 1.66428229e-01 2.11810376e+00 3.54942168e+03]

** Based on Exponential Fit **

	R^2: 0.995922040624432
	Doubling Time (represents overall growth):  4.46 (± 0.26 ) days
	param:  [3.52658013 0.15532238 0.33206189]

US state:  West Virginia

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 324
	Confirmed cases on 3/29/20 	 113
	Ratio: 2.87
	Weekly increase: 186.7 %
	Daily increase: 16.2 % per day
	Doubling Time (represents recent growth): 4.6 days

** Based on Logistic Fit**

	R^2: 0.9963417660155525
	Doubling Time (during middle of growth):  6.37 (± 1.76 ) days
	param:  [ 4.00341679e+01  2.17744286e-01 -1.79510824e+01  5.81444724e+02]

** Based on Exponential Fit **

	R^2: 0.9942246464503721
	Doubling Time (represents overall growth):  5.84 (± 0.84 ) days
	param:  [ 44.92053047   0.11874633 -54.46919881]

US state:  Montana

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 286
	Confirmed cases on 3/29/20 	 154
	Ratio: 1.86
	Weekly increase: 85.7 %
	Daily increase: 9.2 % per day
	Doubling Time (represents recent growth): 7.8 days

** Based on Logistic Fit**

	R^2: 0.9979757510626892
	Doubling Time (during middle of growth):  4.8 (± 0.51 ) days
	param:  [ 1.15202002e+02  2.88763938e-01 -1.03388422e+00  3.20314307e+02]

** Based on Exponential Fit **

	R^2: 0.9819119335627526
	Doubling Time (represents overall growth):  8.23 (± 2.01 ) days
	param:  [ 53.74199038   0.08427314 -68.1722174 ]

US state:  South Dakota

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 240
	Confirmed cases on 3/29/20 	 90
	Ratio: 2.67
	Weekly increase: 166.7 %
	Daily increase: 15.0 % per day
	Doubling Time (represents recent growth): 4.9 days

** Based on Logistic Fit**

	R^2: 0.9976716710583429
	Doubling Time (during middle of growth):  6.14 (± 0.85 ) days
	param:  [3.22580872e+02 2.25764000e-01 4.43791216e+00 5.09461305e+02]

** Based on Exponential Fit **

	R^2: 0.9953843339023541
	Doubling Time (represents overall growth):  4.45 (± 0.32 ) days
	param:  [ 5.09316798  0.15590372 -2.75419422]

US state:  North Dakota

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 207
	Confirmed cases on 3/29/20 	 98
	Ratio: 2.11
	Weekly increase: 111.2 %
	Daily increase: 11.3 % per day
	Doubling Time (represents recent growth): 6.5 days

** Based on Logistic Fit**

	R^2: 0.9951308832187595
	Doubling Time (during middle of growth):  6.9 (± 1.49 ) days
	param:  [ 6.70441260e+01  2.00859631e-01 -5.53461865e+00  3.18292628e+02]

** Based on Exponential Fit **

	R^2: 0.9910124317426376
	Doubling Time (represents overall growth):  7.04 (± 1.01 ) days
	param:  [ 22.96123074   0.09851028 -29.85655317]

US state:  Wyoming

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 197
	Confirmed cases on 3/29/20 	 86
	Ratio: 2.29
	Weekly increase: 129.1 %
	Daily increase: 12.6 % per day
	Doubling Time (represents recent growth): 5.9 days

** Based on Logistic Fit**

	R^2: 0.9954422360258939
	Doubling Time (during middle of growth):  7.69 (± 1.85 ) days
	param:  [ 7.47466389e+01  1.80331331e-01 -4.53544012e+00  4.02146572e+02]

** Based on Exponential Fit **

	R^2: 0.9935425933490625
	Doubling Time (represents overall growth):  6.26 (± 0.7 ) days
	param:  [ 15.77660451   0.11075978 -18.82898584]

US state:  Alaska

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 185
	Confirmed cases on 3/29/20 	 102
	Ratio: 1.81
	Weekly increase: 81.4 %
	Daily increase: 8.9 % per day
	Doubling Time (represents recent growth): 8.1 days

** Based on Logistic Fit**

	R^2: 0.9959976144280099
	Doubling Time (during middle of growth):  5.26 (± 0.84 ) days
	param:  [ 84.95825521   0.26339981  -3.86549654 215.68431812]

** Based on Exponential Fit **

	R^2: 0.9839800932820265
	Doubling Time (represents overall growth):  8.13 (± 1.85 ) days
	param:  [ 33.5886779    0.08527476 -43.94917326]

US state:  Guam

** Based on Most Recent Week of Data **

	Confirmed cases on 4/5/20 	 112
	Confirmed cases on 3/29/20 	 56
	Ratio: 2.0
	Weekly increase: 100.0 %
	Daily increase: 10.4 % per day
	Doubling Time (represents recent growth): 7.0 days

** Based on Logistic Fit**

	R^2: 0.9890824825293301
	Doubling Time (during middle of growth):  32.39 (± nan ) days
	param:  [ 2.62350986e+06  4.27995472e-02 -7.53079945e+01  2.00084389e+08]

** Based on Exponential Fit **

	R^2: 0.9890824832582953
	Doubling Time (represents overall growth):  16.2 (± 6.94 ) days
	param:  [ 7.62656935e+01  4.27996278e-02 -7.53077282e+01]
/home/ma/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:47: RuntimeWarning:

invalid value encountered in sqrt


US state:  Grand Princess

** Based on Logistic Fit**

	R^2: 0.9957311879485949
	Doubling Time (during middle of growth):  0.13 (± 2.34 ) days
	param:  [1.48756046e+54 1.10550008e+01 2.47272423e+01 1.03003147e+02]

 exponential R^2  0.7862640273581875

Doubling Times for US COVID-19 Cases

In [6]:
d = {'States': states, 'Inferred Doubling Time': inferreddoublingtime, '95%CI': errors, 'Recent Doubling Time': recentdoublingtime}

print('\nInferred Doubling Times are inferred using curve fits.') 
print('Recent Doubling Times are calculated using the most recent week of data.')
print('Shorter doubling time = faster growth, longer doubling time = slower growth.')
print('\n')
print(pd.DataFrame(data=d).iloc[:,[3,1,2]].round(1))    

print('\n')
dt = pd.DataFrame(data = d)
dt = dt[dt['Inferred Doubling Time'] < 100]
dt.plot.bar(x = 'States', y = 'Inferred Doubling Time', yerr='95%CI', legend=False,figsize=(10,5), fontsize="x-large");
plt.axhline(y=1, linestyle='--')
plt.axhline(y=3, linestyle='--')
plt.axhline(y=5, linestyle='--')
plt.ylabel('Inferred Doubling Time (Days)', fontsize="x-large")
plt.xlabel('US States', fontsize="x-large")
plt.title('Inferred Doubling Time of Cumulative COVID-19 Cases in US States. Last update: ' + mostrecentdate, fontsize="x-large")
plt.show()

err = pd.DataFrame([errors,[float('NaN') for e in errors]]).T
err.index=states
err.columns = ['Inferred Doubling Time', 'Recent Doubling Time']

print('\n')
dt = pd.DataFrame({'Inferred Doubling Time': inferreddoublingtime,'Recent Doubling Time': recentdoublingtime}, index=states)
dt = dt[dt['Recent Doubling Time'] < 100]
dt.plot.bar(yerr=err, figsize=(10,5), fontsize="x-large")
plt.ylabel('Doubling Time (Days)', fontsize="x-large")
plt.xlabel('US States', fontsize="x-large")
plt.axhline(y=1, linestyle='--')
plt.axhline(y=3, linestyle='--')
plt.axhline(y=5, linestyle='--')
plt.title('Doubling Time of Cumulative COVID-19 Cases in US States. Last update: ' + mostrecentdate, fontsize="x-large")
plt.show()
Inferred Doubling Times are inferred using curve fits.
Recent Doubling Times are calculated using the most recent week of data.
Shorter doubling time = faster growth, longer doubling time = slower growth.


    Recent Doubling Time  Inferred Doubling Time  95%CI
0                    6.7                     6.2    0.5
1                    4.7                     5.2    0.3
2                    4.6                     5.7    0.4
3                    5.1                     4.9    0.2
4                    3.7                     3.5    0.4
5                    5.2                     4.9    0.2
6                    4.5                     5.3    0.4
7                    4.0                     3.8    0.2
8                    5.4                     4.5    0.2
9                    8.6                     8.6    0.4
10                   5.1                     6.2    0.4
11                   5.3                     5.3    0.6
12                   4.6                     4.9    0.5
13                   6.4                     5.2    0.5
14                   4.5                     4.9    0.3
15                   5.4                     5.9    0.4
16                   6.5                     5.4    0.7
17                   4.5                     4.3    0.2
18                   6.1                     6.6    0.5
19                   4.5                     4.4    0.2
20                   4.9                     4.4    0.2
21                   5.2                     4.8    0.6
22                   7.0                     7.6    1.2
23                   5.0                     6.3    0.6
24                   6.9                     5.1    0.5
25                   6.4                     5.3    0.8
26                   6.3                     7.5    1.3
27                   6.1                     7.7    1.5
28                   4.5                     5.6    0.7
29                   3.6                     4.1    0.6
30                   7.3                     6.2    0.6
31                   4.5                     5.3    0.3
32                   6.2                     5.6    0.6
33                   7.8                     7.2    0.5
34                   4.2                     5.5    0.5
35                   5.1                     5.7    0.4
36                   7.2                    10.2    4.4
37                   5.9                     5.5    0.3
38                   4.6                     4.7    0.4
39                   4.7                     4.5    0.4
40                   4.6                     4.9    0.5
41                   6.2                     6.3    0.7
42                   3.7                     4.8    1.5
43                   7.8                     9.5    3.0
44                   5.3                     8.6    1.9
45                   4.0                     4.5    0.3
46                   4.6                     6.4    1.8
47                   7.8                     4.8    0.5
48                   4.9                     4.4    0.3
49                   6.5                     6.9    1.5
50                   5.9                     7.7    1.8
51                   8.1                     5.3    0.8
52                   7.0                    16.2    6.9
53                   NaN                     0.1    2.3



In [ ]: